# 验证回文 只验证数字 字母 字母不区分大小写

# 方法1：回文：正着读和反着读都一样则为回文
def f1():
    # str = "abcBA"
    # str = "1234321"
    str = "12asa"
    if str[::-1].lower() == str.lower():
        print(f"{str}是回文")
    else:
        print(f"{str}不是回文")
# f1()
# 方法2：判断 1到n/2-1 和 n到n/2+1  是否一样，一样则为回文（不需要判断字符串长度是奇数还是偶数）
def f2():
    str = "abcBA"
    # str = "1234321"
    # str = "12asa"
    n = len(str)
    str1 = str[0:n // 2]
    str2 = str[n:n // 2:-1]
    if str1 == str2.lower():
        print(f"{str}是回文")
    else:
        print(f"{str}不是回文")
# f2()





# 输出最小回文串 eg:noon---> noon   noo---->noon    abc--->abcba

def f1():
    # str = "abcBA"
    # str = "abc"
    str = "noo"
    n = len(str)
    if str[::-1].lower() == str.lower():
        print(f"{str}的最小回文串是{str}")
        # print(f"{str}是回文")

    else:
        print(f"{str}不是回文")
        if str[n-1] == str[n-2]: #最后两个字母相同的情况
            str1 = str[0:n-2]
            str2 = str + str1[::-1] #字符串拼接

        else:
            str1 = str[0:n-1]
            str2 = str + str1[::-1]

        print(f"{str}的最小回文串是{str2}")
f1()

